package view;

import model.KlsUsuario;
import com.opensymphony.xwork2.ActionSupport;
import com.opensymphony.xwork2.ModelDriven;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import controller.KlsUsuarioManager;

public class UsuarioActionMD extends ActionSupport implements ModelDriven<KlsUsuario> {

	private static final long serialVersionUID = 1L;
	
	private KlsUsuario usuario = new KlsUsuario();
	private KlsUsuarioManager usuarioManager;
	private List<KlsUsuario> usuarioList;
	private int idUsuario;

	public UsuarioActionMD() {
    	usuarioManager = new KlsUsuarioManager();
    }
	
	public KlsUsuario getModel() {
			return usuario;
	}
	
	@Override
	public String execute() {
    	System.out.println("execute called");
        return SUCCESS;
    }
	
	public String agregar() throws Exception{
        //System.out.println(getModel());
        try {
           usuario = usuarioManager.add(getModel());
        } catch (Exception e) {
            e.printStackTrace();
            return ERROR;
        }

        return SUCCESS;
    }
	
	public String delete() {
    	try {
    		
    		HttpServletRequest request = ServletActionContext.getRequest();
    		String s = request.getParameter("idUsuario");
    		setIdUsuario( Integer.parseInt(s));
    		usuario = usuarioManager.delete(this.getIdUsuario());   		
    		
    	} catch (Exception e) {
            e.printStackTrace();
            return ERROR;
        }

        return SUCCESS;
    }
	
	public String list() {
	     try {
	    	this.usuarioList = usuarioManager.list();
	     }    
	     catch (Exception e) {
	        e.printStackTrace();
	        return ERROR;
	    }
	    return SUCCESS;
	}
	
	public void setUsuario(KlsUsuario usuario) {
		this.usuario = usuario;
	}

	public void setUsuarioManager(KlsUsuarioManager usuarioManager) {
		this.usuarioManager = usuarioManager;
	}

	public String load() {
    	try {
    		HttpServletRequest request = ServletActionContext.getRequest();
    		String s = request.getParameter("idUsuario");
    		setIdUsuario( Integer.parseInt(s));
    		usuario = usuarioManager.load(this.getIdUsuario());
    		
    	} catch (Exception e) {
            e.printStackTrace();
            return ERROR;
        }
    	return SUCCESS;
    }
	
	public String update() {
    	try {
    		usuario = usuarioManager.update(usuario);
        } catch (Exception e) {
            e.printStackTrace();
            return ERROR;
        }
        return SUCCESS;
    }
	
	
	public void setUsuariotList(List<KlsUsuario> usuarioList) {
		this.usuarioList = usuarioList;
	}
	
	public List<KlsUsuario> getUsuarioList() {
		return usuarioList;
	}

	public int getIdUsuario() {
		return idUsuario;
	}

	public void setIdUsuario(int idUsuario)	{
		this.idUsuario = idUsuario;
	}
	
	public static long getSerialversionuid() {
		return serialVersionUID;
	}

	public KlsUsuario getUsuario() {
		return usuario;
	}

	public KlsUsuarioManager getUsuarioManager() {
		return usuarioManager;
	}

	public void setUsuarioList(List<KlsUsuario> usuarioList) {
		this.usuarioList = usuarioList;
	}
}
